package com.yanqu.road.entity.activity.liondance;

import com.yanqu.road.entity.DataObject;
import com.yanqu.road.entity.FieldTypeAnnotation;
import com.yanqu.road.utils.property.Property;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@FieldTypeAnnotation(tableName = "t_u_activity_lion_dance_user_data")
public class UserLionDanceData extends DataObject {

    @FieldTypeAnnotation(desc = "活动ID", select = true, update = true)
    private int activityId;

    @FieldTypeAnnotation(desc = "用户ID", select = true, update = true)
    private long userId;

    @FieldTypeAnnotation(desc = "制狮数量")
    private int makeNum;

    @FieldTypeAnnotation(desc = "当前进度：累加，除100是数量")
    private int process;

    @FieldTypeAnnotation(desc = "获得组合次数")
    private Map<Integer, Integer> combMap = new HashMap<>();

    @FieldTypeAnnotation(desc = "当前卡牌")
    private Property cardMap = new Property();

    @FieldTypeAnnotation(desc = "积分")
    private long score;

    @FieldTypeAnnotation(desc = "单局最高")
    private long maxScore;

    @FieldTypeAnnotation(desc = "单局最高分-对应的排名")
    private int maxRank;

    @FieldTypeAnnotation(desc = "桩数据")
    private List<Pile> pileList;

    @FieldTypeAnnotation(desc = "跳桩进度")
    private GameStatus status;

    @FieldTypeAnnotation(desc = "累计材料消耗")
    private int totalUseNum;

    public int getActivityId() {
        return activityId;
    }

    public void setActivityId(int activityId) {
        if(this.activityId != activityId) {
            this.activityId = activityId;
            setUpdateOption();
        }
    }

    public long getUserId() {
        return userId;
    }

    public void setUserId(long userId) {
        if(this.userId != userId) {
            this.userId = userId;
            setUpdateOption();
        }
    }

    public int getMakeNum() {
        return makeNum;
    }

    public void setMakeNum(int makeNum) {
        if(this.makeNum != makeNum) {
            this.makeNum = makeNum;
            setUpdateOption();
        }
    }

    public int getProcess() {
        return process;
    }

    public void setProcess(int process) {
        if(this.process != process) {
            this.process = process;
            setUpdateOption();
        }
    }

    public Map<Integer, Integer> getCombMap() {
        return combMap;
    }

    public void setCombMap(Map<Integer, Integer> combMap) {
        this.combMap = combMap;
    }

    public long getScore() {
        return score;
    }

    public void setScore(long score) {
        if(this.score != score) {
            this.score = score;
            setUpdateOption();
        }
    }

    public long getMaxScore() {
        return maxScore;
    }

    public void setMaxScore(long maxScore) {
        if(this.maxScore != maxScore) {
            this.maxScore = maxScore;
            setUpdateOption();
        }
    }

    public int getMaxRank() {
        return maxRank;
    }

    public void setMaxRank(int maxRank) {
        if(this.maxRank != maxRank) {
            this.maxRank = maxRank;
            setUpdateOption();
        }
    }

    public List<Pile> getPileList() {
        return pileList;
    }

    public void setPileList(List<Pile> pileList) {
        this.pileList = pileList;
        setUpdateOption();
    }

    public Property getCardMap() {
        return cardMap;
    }

    public void setCardMap(Property cardMap) {
        this.cardMap = cardMap;
        setUpdateOption();
    }

    public GameStatus getStatus() {
        return status;
    }

    public void setStatus(GameStatus status) {
        this.status = status;
        setUpdateOption();
    }

    public int getTotalUseNum() {
        return totalUseNum;
    }

    public void setTotalUseNum(int totalUseNum) {
        if(this.totalUseNum != totalUseNum) {
            this.totalUseNum = totalUseNum;
            setUpdateOption();
        }
    }
}
